
// 导入创建全局状态的方法
import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import user from './modules/user'
import cart from './modules/cart'

export default createStore({
  state() {
    return {

      // 数据存放地




    }
  },
  mutations: {


  },
  actions: {
    // 这里可以直接拿到上下文环境
  },
  getters: {
    // 这里可以直接拿到state
    storeToken(state) {
      return state.user.userInfo.token
    }
  },
  modules: {
    user,
    cart,
  },


  // 这里可以直接拿到state


  // vuex存储的东西刷新会丢失，所以必须持久化管理一下
  // 全局数据共享，可以在全局共享同一个数据，实现数据全局共享
  plugins: [
    /*
            vuex 全局状态管理，在页面刷新的时候会导致数据恢复到初始值，数据丢失。
            我们可以将数据保存在本地，或者使用插件来将数据保存在本地
    */
    createPersistedState({
      reducer: state => {
        return {
          // 需要持久化的数据
          userId: state.user.userInfo.userId,
          token: state.user.userInfo.token,
          cartList: state.cart.cartList,

        }
      }
    })

  ]

})